<?php
error_reporting(E_ALL & ~E_NOTICE);
// 引入自动加载&yii
require __DIR__ . '/../../vendor/autoload.php';
// 引入ENV预设环境变量
$dotEnv = Dotenv\Dotenv::create(__DIR__.'/../../');
$dotEnv->load();
if(isset($_SERVER['SENTRY_DSN'])) {
    // 载入Sentry
    Sentry\init(['dsn' => $_SERVER['SENTRY_DSN']]);
}
// 环境配置
$env    = isset($_SERVER['APP_ENV']) ? $_SERVER['APP_ENV'] : 'dev';
$debug  = isset($_SERVER['APP_DEBUG']) ? boolval($_SERVER['APP_DEBUG']) : true;
$runtime_path = isset($_SERVER['RUNTIME_PATH']) ? $_SERVER['RUNTIME_PATH'] : __DIR__.'/../runtime';
defined('YII_DEBUG') or define('YII_DEBUG', $debug);
defined('YII_ENV') or define('YII_ENV', $env);
define('VENDOR_PATH', __DIR__."/../../vendor");
define('RUNTIME_PATH', $runtime_path);
// 加载框架
require __DIR__ . '/../../vendor/yiisoft/yii2/Yii.php';
require __DIR__ . '/../../common/config/bootstrap.php';
require __DIR__ . '/../config/bootstrap.php';
// 开发环境特殊处理
if($env=='dev'){
    ini_set('display_errors','On');
    error_reporting(E_WARNING);
    Yii::setAlias('@yii/gii' , VENDOR_PATH . '/yiisoft/yii2-gii/src');
    Yii::setAlias('@yii/debug' , VENDOR_PATH . '/yiisoft/yii2-debug/src');
    // 测试环境清除opcache
    if(function_exists('opcache_reset')) {
        opcache_reset();
    }
}
// 加载配置
$config = yii\helpers\ArrayHelper::merge(
    require __DIR__ . '/../../common/config/main.php',
    require __DIR__ . '/../config/main.php'
);
// 实例化应用
(new yii\web\Application($config))->run();
